#ifndef __INETADDRESS_H__
#define __INETADDRESS_H__

#include <string>
#include <arpa/inet.h>

using namespace std;

class InetAddress
{
public:
    // 构造函数：根据IP地址和端口号初始化
    InetAddress(const string &ip, unsigned short port);

    // 另一个构造函数：通过一个已经存在的sockaddr_in结构体进行初始化
    InetAddress(const struct sockaddr_in &addr);

    // 析构函数：该类没有动态分配内存，所以不需要做特别的资源释放工作
    ~InetAddress();

    // 获取客户端的IP地址：返回IP地址的字符串形式
    string ip() const;

    // 获取客户端的端口号：返回端口号
    unsigned short port() const;

    // 获取_sockaddr_in结构体的指针
    const struct sockaddr_in *getInetAddressPtr() const;

private:
    struct sockaddr_in _addr;
};

#endif 